<?php
//类Person，做为父类
class Person
{
	protected $name;//protected受保护，外部不可访问，只允许自己内部或子类访问
	protected $age;
	protected $salary;
	//创建构造方法，用来实例化这个类
	public function __construct($name, $age, $salary)
	{
		$this->name = $name;
		$this->age = $age;
		$this->salary = $salary;
	}
	//这里声明受保护的，这样就只能被子类继承，子类继承过去仍是protected
	
	protected function showMess()
	
	{
		return '我的姓名是：'.$this->name.'，年龄是：'.$this->age.'，工资是：'.$this->salary;
	}
}
//声明一个子类（扩展类），继承使用关健字：extends,php是单继承语言
//创建子类是为了扩展父类的功能，实现代码复用
class Staff extends Person
{
	protected $department;//员工所在部门
	public function __construct($name, $age, $salary, $department)
	{
		parent::__construct($name, $age, $salary);//直接引用父类的就不用重复写了
		//
		// $this->name = $name;
		// $this->age = $age;
		// $this->salary = $salary;
		$this->department = $department;//把要补充的加上

	}
//在子类重写父类方法，其访问权限不能低于原来的，原来的是protected,那么现在应该是public
	public function showMess()
	
	{
		/*
		return '我的姓名是：'.$this->name.'，年龄是：'.$this->age.'，工资是：'.$this->salary.'，部门是：'.$this->department;
		*/
		return parent::showMess().'，部门是：'.$this->department;//直接引用父类的就不用重复写了,并加上补充的
	}

}
$obj = new Staff('yuping', 38, 5800, '市场部');
echo $obj->showMess();